// utils/apiResponse.js

/**
 * API响应处理工具
 */
export const apiResponse = {
  /**
   * 处理API响应
   * @param {Object} response - API响应数据
   * @param {string} successMsg - 成功提示信息
   * @param {string} errorMsg - 错误提示信息
   * @returns {Object} 处理结果
   */
  handle(response, successMsg = '', errorMsg = '') {
    if (response.code === 200) {
      if (successMsg) {
        uni.showToast({
          title: successMsg,
          icon: 'success'
        })
      }
      return {
        success: true,
        data: response.data,
        message: response.msg || successMsg
      }
    } else {
      const message = response.msg || errorMsg || '操作失败'
      uni.showToast({
        title: message,
        icon: 'none'
      })
      return {
        success: false,
        data: null,
        message: message
      }
    }
  },

  /**
   * 处理错误
   * @param {Error} error - 错误对象
   * @param {string} defaultMsg - 默认错误信息
   */
  handleError(error, defaultMsg = '网络错误，请重试') {
    console.error('API Error:', error)
    uni.showToast({
      title: defaultMsg,
      icon: 'none'
    })
    return {
      success: false,
      data: null,
      message: defaultMsg
    }
  },

  /**
   * 检查用户登录状态
   * @returns {boolean} 是否已登录
   */
  checkLogin() {
    const userId = uni.getStorageSync('userId')
    const token = uni.getStorageSync('token')
    
    if (!userId || !token) {
      uni.showToast({
        title: '用户未登录',
        icon: 'none'
      })
      // 跳转到登录页面
      setTimeout(() => {
        uni.navigateTo({
          url: '/pages/login/login'
        })
      }, 1500)
      return false
    }
    return true
  }
}

export default apiResponse 